Promise.reject(0).catch((e) => console.log(e)).catch(e => console.log(e))   // 0

let aa = 5;

// 在 Promise 中，一旦 resolve 或 reject 被调用，Promise 的状态就被锁定为已解决或已拒绝，任何后续的异常（包括 throw 语句）都不会改变已经锁定的状态。
const p = new Promise((resolve, reject) => {
  resolve('ok');
  aa = 6;
  console.log(aa)
  throw new Error('error');
})
p.then(data => console.log(data)).catch(e => console.log(e)) // ok